Git workflow lokaal
Home

Git workflow lokaal

Git workflow lokaal

Een lokale repository bestaat uit 3 verschillende 'trees' die je met git kan beheren:
  1. de Working Directory, dat is de Windows, iOS, Linux map waarin je bestanden staan;
  2. de Index, de verzamelplaats (staging area) waarin bestanden worden geplaatst om neergelegd (commit) te worden;
  3. de geschiedenis (history) bevat de versiegeschiedenis van al je commits. De HEAD verwijst naar de laatste 'commit' die je hebt gemaakt;
visualisation of git movements
visualisation of git movements

Overzicht

  1. Maak een backup van je Programmeren map vooraleer je met Git op je computer begint te werken!!!!!!
  2. Start Powershell op
    1. Standaard achtergrondkleur is groen met rgb waarde 0, 128, 128. Ik zet de achtergrondkleur op zwart omdat de Git tekst op zwart beter leesbaar is. Linksboven klik je op het Powershell icoontje. Daarna op eigenschappen.
      Powershell - change terminal properties
      Powershell - change terminal properties
    2. Er wordt een dialoogvenster geopend waarin je de achtergrondkleur van de terminal kan wijzigen.
      Poxershell - change background-color terminal
      Powershell - change background-color terminal
    3. Geavanceerd: Change the PowerShell Colors
  3. Git installeren
    1. Git installeren
    2. Je kan ook de GIT kleuren aanpassen als je dat wilt. Pas de kleuren in Git aan
  4. Bestandsmap initialiseren voor gebruik met GIT
    1. Ga naar de map Programmeren, de map waarin je de oefeningen en opdrachten maakt voor het vak Programmeren:
      cd AP/Programmeren
    2. Bestandsmap Programmeren (gevolgd door groep naam, G1, G2, enz) initialiseren:
      git init
    3. Nadag je git init hebt uitgevoerd, kan je in de Verkenner zien dat Git een verborgen submap in je working directory heeft toegevoegd. Verwijder deze map niet. Als je .git verwijdert, verwijder je meteen je hele Git geschiedenis. Om in PowerShell een verborgen map te tonen gebruik de -Force optie en om alleen mappen te zien, de -Dir optie.
      git init - .git submap created
      git init - .git submap created
  5. Gebruikersinformatie
    1. Het eerste wat je wilt doen met een nieuwe Git installatie is je zelf voorstellen. Git slaat deze informatie op in je commits en op de diensten van derden, zoals GitHub en BitBucket om je te kunnen identificeren.
    2. De --global vlag registeert je opties in ~/.gitconfig, en is de standaard voor alle nieuwe repositories. Het weglaten geeft ke de mogelijkheid je opties op een per-repository basis te op te geven.
    3. Je gebruikernaam instellen voor elke repo op je computer:
      git config --global user.name "Blaise Scheele"
      
    4. Verifieer of je gebruikersnaam correct is ingesteld:
      git config --global user.name
    5. Om je gebruikersnaam in te stellen voor een specifieke repo, ga ja naar de map waar je repo staat en typ het volgende commando:
      git config --local user.name "Billy Scheele"
    6. Verifieer of je gebruikersnaam correct is ingesteld:
      git config --local user.name
    7. Je emailadres instellen voor elke repo op je computer:
      git config --global user.email"blaise.scheele@inantwerpen.com"
    8. Verifieer of je email correct is ingesteld:
      git config --global user.email
    9. Om je gebruikersnaam in te stellen voor een specifieke repo, ga ja naar de map waar je repo staat en typ het volgende commando:
      git config --local user.email "blaise.scheele@inantwerpen.com"
    10. Verifieer of je emailadres correct is ingesteld:
      git config --local user.email
  6. Bestanden verzamelen (staging)
    1. git status
      git status only folders
      git status only folders
      Je krijgt alleen de bestandsnamen te zien en niet de bestanden zelf.
    2. git status -u
      git status -u
      git status -u
      Zoals je ziet is dat een hele lijst en die is zo lang voor elk project in de Programmeren map.
    3. .gitignore bestand maken om alleen .cs en csproj bestanden te verzamelen
      Als je geen .gitignore bestand maakt om bepaalde bestanden en mappen uit te sluiten worden ook alle systeembestanden mee opgenomen in de repo. We zijn alleen geïnteresseerd in de .cs en de .csproj bestanden. Je kan dit op twee manieren doen:
      1. Negatief door alle bestanden te negeren behalve de *.cs en de *.csproj bestanden:
        gitignore all except cs files
        .gitignore all except cs files
      2. Met dit als resultaat:
        git status -u with gitignore all except cs files
        git status -u with gitignore all except cs files
      3. Door een lijst in te voeren met de bestanden en mappen die je niet wilt opnemen in de repo:
        gitignore all vs system files and folders
        gitignore all vs system files and folders
      4. En dat is het resultaat:
        git status -u with gitignore
        git status -u with gitignore
    4. Alle programma-bestanden op de verzamelplaats zetten (staging)
      1. git add --all
      2. git add -a
    5. De verzamelplaats inspecteren:
      1. git status
        git status na git add -A of git add --all
        git status na git add -A of git add --all
        De verzamelde bestanden en mappen worden in het groen weergegeven.
    6. Meer info op: Git bestanden verzamelen
  7. Commit: bestanden neerleggen
    1. git commit -m "Programmeren 30/9/2019 les 1 afgewerkt"
      git commit -m output
      git commit -m output
    2. Geschiedenis van commits bekijken:
      git log
      git log - output
      git log - output
    3. Meer info over Git bestanden neerleggen
  8. Maak een nieuwe map in Programmeren met de naam Les3.
    1. Open VS en creeer een nieuw project in deze map met de naam TheorieUitproberen. Plaats in Program.cs de volgende code:
      using System;
      
      namespace TheorieUitproberen
      {
          class Program
          {
              static void Main(string[] args)
              {
                  Console.WriteLine("Hello World!");
                  string voornaam = "Karel";
                  char singleQuote = '\'';
      
                  Console.WriteLine(singleQuote + voornaam + singleQuote);
                  Console.WriteLine("Ik ga naar de film \"Harry Potter\"");
                  Console.WriteLine("Ik ga naar de film" + '"' + "Harry Potter" + '"');
                  //
                  Console.WriteLine("Klein klein kleutertje");
                  Console.WriteLine("Wat doe je in mijn hof");
                  Console.WriteLine("Je plukt er alle bloempjes af");
                  Console.WriteLine("Je maakt het veel te grof");
                  Console.WriteLine("Klein klein kleutertje\n\tWat doe je in mijn hof\n\tJe plukt er alle bloempjes af\n\tJe maakt het veel te grof");
                  Console.WriteLine("10\t20\t30\n40\t50\t60");
                  voornaam = "Mo";
                  string familienaam = "El Farisi";
                  // interpolatie, pas sinds C# 6
                  Console.WriteLine($"Je voornaam is {voornaam} en je familienaam is {familienaam}.");
                  Console.ReadKey();
              }
          }
      }

      Als je die code al hebt, wijzig dan 1 regel, bijvoorbeeld:

      string voornaam = "Hannah";
    2. git status -u:
      git status -u na wijziging in working directory
      git status -u na wijziging in working directory
    3. git add --all
    4. git status:
      git status na 2de git add -A of git add --all
      git status na 2de git add -A of git add --all
  9. Maak een nieuwe map in Programmeren met de naam Les4.
    1. Open VS en creeer een nieuw project in deze map met de naam Theorieles. Plaats in Program.cs de volgende code:
      using System;
      
      namespace Theorieles
      {
          class Program
          {
              static void Main(string[] args)
              {
                  Console.WriteLine("Casting, Conversion en Parsing");
                  int getal1 = 2;
                  float getal2 = 1.00f;
                  double getal3;
                  getal3 = getal1; // widening impliciet uitgevoerd
                  getal1 = (int) getal2;
                  string naam = "Mo";
                  //getal1 = (int) naam;
                  char eenKarakter = 'A';
                  getal1 = eenKarakter;
                  //naam = eenKarakter;
                  naam = "3M";
                  string rekeningnummer = "00345678234";
                  //int rekeningnummerGetal = (int)rekeningnummer;
                  int rekeningnummerGetal = Convert.ToInt32(rekeningnummer);
                  Console.WriteLine($"rekeningnummer van string naar int: {rekeningnummerGetal}");
                  //getal1 = Convert.ToInt32(naam);
                  Console.WriteLine($"De naam Mo van string naar int: {getal1}");
                  bool isHetMogelijk = Int32.TryParse(naam, out getal1);
                  Console.Write("Hoeveel weeg je? ");
                  string answer = Console.ReadLine();
                  bool isHetEenGetal = Int32.TryParse(answer, out getal1);
                  Console.WriteLine($"Heb je een getal ingetypt? {isHetEenGetal}");
                  Console.ReadKey();
              }
          }
      }

      Als je die code al hebt, wijzig dan 1 regel, bijvoorbeeld:

      string naam = "Hannah";
      
    2. Onze working directory is nu gewijzigd maar het nieuwe project staat nog niet op de verzamelplaats.
      1. git status:

JI
2020-02-07 10:05:21